class Solution {
public:
    vector<int> occurrencesOfElement(vector<int>& nums, vector<int>& queries, int x) {
        // unordered_map<int, vector<int>> hash;
        vector<int> hash;
        int n = nums.size(), q = queries.size();
        // 用 hash 数组记录所有等于 x 的 nums[i] 的下标 i
        for(int i = 0; i < n; i++)
            if(nums[i] == x)
                hash.push_back(i);
        
        vector<int> ans(q);
        // if(hash.find(x) == hash.end())
        if(hash.empty())
        {
            for(int i = 0; i < q; i++)
                ans[i] = -1;
            return ans;
        }

        n = hash.size();
        for(int i = 0; i < q; i++)
        {
            // 对于每个询问 q = queries[i]，如果 q 大于 hash 的长度，则答案为 −1，否则答案为 hash[queries[i] - 1]
            // if(hash.size() < queries[i])
            //     ans[i] = -1;
            // else
            //     ans[i] = hash[queries[i] - 1];
            ans[i] = n < queries[i] ? -1 : hash[queries[i] - 1]; 
        }
        return ans;
    }
};